意図と可読性のあるtest codeを書く
Test Code全般を書く時に心がける点について
個別的な分析手法とか、具体的なフレームワークには言及せずに
参考
リーダブルテストコード - Qiita
テストコードに対する知識が少ないと、一番最初の悪い例が、そもそも「これ悪いんだ」という感想になるmrsekut.icon
変数にsut(SUT)やdoc(DOC)を使うことで、どの対象をテストしたいのかを明確にする
prefixに付ければいい
これって割とOOP前提な話だよなmrsekut.icon
関数をテストしたいときって、関数それ自体がsutになるので、名前のつけようがない
テストケースではただ一つのことを検証する
細かくなってもいい
トータルとして冗長になってもいい
無理に簡潔に書こうとしなくていい
共通するtest fixtureをセットアップメソッドで作成する
同じ前提を使うものは、同じ場所に書くことで、全体として簡潔にできる
AAAパターンを意識する
振舞いに影響を与える値とそうでない値を区別する
テスト対象の関数の引数に対するワイルドパターン_的なやつを書くことで、どの引数をテストしたいのかを明確にする
JestのMatcherには、.any(Number)のようにして使うものもある
生成メソッドを活用する
https://qiita.com/yonetty/items/7787a539d77396a3807e#生成メソッドを活用する
計算結果ではなく計算式を記述する
test case名を実装の詳細に言及しないようにする
test codeを書くことで、元の実装の意図を伝える
こういう風に動くコードを書いた
このコードはこういう風に使う
こういう入力値を想定している
こういう時にエラーを返す
#??
これ見れば全部詰まってる!というコード片をメモっておきたい
/mrsekut-book-4839981728/074 (第3章 単体テストの構造的解析)
『リーダブルコード』に書いてるらしい
14章
https://tech.uzabase.com/entry/2021/04/09/143842
https://speakerdeck.com/jnchito/number-vstat
https://speakerdeck.com/nihonbuson/tesutokodonihatesutofalseyi-tu-woip-meyou
https://speakerdeck.com/tsuemura/kontekisutotosemanteikusuwoyi-shi-siteridaburunae2etesutokodowoshu-kou
https://product.10x.co.jp/entry/test-coding-standards-in-10X-202303
よさそう